【翻訳】技術的負債という概念の生みの親 Ward Cunningham 自身による説明
技術的負債という概念の生みの親は Ward Cunningham (ウォード・カニンガム)
Kent Beckの師匠
「負債」という言葉は、経営に近い人ほどポジティブな印象を持ち(資本のイメージ)、純粋な技術面に近い人ほどネガティブな印象を抱く(借金のイメージ)傾向があるように思われます。
Ward が語っている負債のメタファーはどちらかというとポジティブなものです。
訳してみて驚くのは、 Ward Cunningham が言っていることが一般的にイメージされている「技術的負債」とは結構違うことです。
カニンガムの動画より
「もしも自分たちが書いているプログラム(WyCash)を、金融の世界に関する正しい捉え方だと自分たちが理解した姿と一致させることができなくなれば、自分たちは絶えずその不一致につまずき続けることになり、開発スピードは遅くなっていくでしょう。それはまるで借金の利子を払い続けるかのようです」と説明した
私はお金を借りるのは良いアイデアだと、つまりソフトウェアを急いで世に出し、それによって学びを得るのは良いアイデアだと考えていました。次第に日常に戻ってきたら、もちろん借金を返済していくことになるでしょう。すなわち、そのソフトウェアについての学びを深めるにつれてリファクタリングを行うことで、得られた経験をプログラムに反映していくのです。(強調は引用者による)
私は、ソフトウェアを急いで世に出して学びを得たにもかかわらず、その学びをプログラムに反映しない、つまり借金で言えば全く返済をしないケースが多々あると考えています。
多くのブロガーが負債のメタファーのことを、後できれいに書き直すつもりなら雑なコードを書いてもいいという考え方と混同し、かつその考え方こそが負債の原因であると説明しています。
私は雑なコードを書くことには全く賛成しませんが、たとえ理解が不完全だとしても、目の前の問題に対する現時点での理解を反映するコードを書くことには賛成です。
言い換えるなら、負債のメタファーで大事なのは返済してメタファーを味方につける力であり、それは問題を理解するに従ってリファクタリングしていけるような、十分にきれいなコードを書いているかどうかで決まるのです。
負債という概念はポジティブな資本の意味合いで生まれた。ソフトウェアを早く世に出し学びを得る。得た経験や学びをリファクタリングでプログラムに反映。「コードを書くときには常にそのときのベストを尽くせ」